System and method for adjusting transmission data rates to a device in a communication network

ABSTRACT

The invention relates to a system and method for adjusting a characteristic of a data transmission in order to maintain a rate of transmission. For the method, it comprises: monitoring for initiation of the data transmission to the device; identifying characteristics of the device relating to the data transmission that affect the ability of the device to process the transmission; automatically adjusting the transmission rate according to a preset transmission rate progression established for the communication network; and adjusting characteristics of the data transmission to allow the characteristics of data transmission to conform to the characteristics of the device while maintaining the transmission rate for the device.

The invention described herein relates to a system and method foradjusting transmission data rates to a device in a communicationnetwork. In particular, the data may be for a video feed; the device maybe a wireless device; and the rate may be varied to retain a hightransmission rate of frames without dropping frames.

BACKGROUND

Wireless handheld mobile communication devices perform a variety offunctions to enable mobile users to stay organized and in contact withothers in a communication network through e-mail, schedulers and addressbooks. More sophisticated electronic devices have relatively large andbright colour displays and have the ability to receive relativelyhigh-bandwidth data transmission streams, such as video streams, fromsources that are linked to the network.

Video transmission links require a certain effective frame rate to bereceived at a device in order to generate a fluid moving image on thedisplay of the device. Maintaining the effective frame rate to awireless device can be difficult, given the variable nature oftransmission rates to wireless devices.

There is a need for a system and method which addresses deficiencies inthe prior art.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention will now be described, by way of exampleonly, with reference to the accompanying drawings, in which:

FIG. 1 is a schematic diagram of a communication network providing datatransmissions from the network to wireless devices through a transcoderas provided in an embodiment;

FIG. 2 is a schematic diagram of a data transmission session for thetranscoder of FIG. 1;

FIG. 3 is a block diagram of the transcoder of FIG. 1;

FIG. 4 is a flowchart of exemplary steps executed by the transcoder ofFIG. 1 in providing and adjusting a data transmission stream inaccordance with an embodiment;

FIG. 5 is a schematic representation of a wireless electronic devicereceiving the data transmission from the transcoder in FIG. 1 inaccordance with an embodiment; and

FIG. 6 is a block diagram of certain internal components of the devicein FIG. 5.

DETAILED DESCRIPTION OF AN EMBODIMENT

The description which follows and the embodiments described therein areprovided by way of illustration of an example or examples of particularembodiments of the principles of the present disclosure. These examplesare provided for the purposes of explanation and not limitation of thoseprinciples and of the invention. In the description which follows, likeparts are marked throughout the specification and the drawings with thesame respective reference numerals.

In a first aspect, a method for adjusting a download transmission ratefor a data transmission destined for a portable device through acommunication network is provided. The method comprises: monitoring forinitiation of the data transmission to the device; identifyingcharacteristics of the device relating to the data transmission thataffect the ability of the device to process the transmission;automatically adjusting the transmission rate according to a presettransmission rate progression established for the communication network;and adjusting characteristics of the data transmission to allow thecharacteristics of data transmission to conform to the characteristicsof the device while maintaining the transmission rate for the device.

In the method, the data transmission may be a video stream; the devicemay be a wireless device; the characteristics of the data transmissionmay relate to resolution and colour depth of frames of the video stream;the characteristics of the device may relate to at least characteristicsof a display of the device; and the transmission rate may be adjustedaccording to a UMTS protocol.

The method may be executed at a transcoder providing the video stream tothe wireless device.

In the method, the characteristics of the device may further relate tovideo processing software operating on the device.

In the method, the transmission rate may further be adjusted dependingon any acknowledgement messages provided from the device to thetranscoder. In particular, the transmission rate may be adjusteddepending on contents of a receipt history of acknowledgement messagesreceived by the transcoder the device. Further, for the method, thetransmission rate may be increased only if the receipt history indicatesthat the acknowledgement messages are being received.

In the method, adjusting characteristics of the data transmission mayutilize data relating to resolution and colour depth capabilities of thedisplay.

In the method, the data transmission may be configured to avoid droppingframe from the video stream.

In the method, adjusting characteristics of the data transmission thedevice may provide to the transcoder data relating to resolution andcolour depth capabilities of its display and data relating to its videoprocessing software.

In a second aspect, a module for adjusting a download transmission ratefor a data transmission destined for a portable device through acommunication network is provided. The module comprises: a monitoringprocess to monitor for initiation of the data transmission to thedevice; an analysis process to identify characteristics of the devicerelating to the data transmission that affect the ability of the deviceto process the transmission; and a transmission adjustment process toautomatically adjust the transmission rate according to a presettransmission rate progression established for the communication networkand to allow the characteristics of data transmission to conform to thecharacteristics of the device while maintaining the transmission ratefor the device.

In the module, the data transmission may be a video stream; the devicemay be a wireless device; the characteristics of the data transmissionmay relate to resolution and colour depth of frames of the video stream;the characteristics of the device may relate to characteristics of adisplay of the device; and the transmission rate may be adjustedaccording to a UMTS protocol.

The module may be a transcoder providing the video stream to thewireless device.

In the module, the characteristics of the device may further relate tovideo processing software operating on the device.

In the module, the transmission rate may be further adjusted dependingon any acknowledgement messages provided from the device to thetranscoder.

In the module, the transmission adjustment module may utilize datarelating to resolution and colour depth capabilities of the display toadjust characteristics of the data transmission.

In the module, the transmission adjustment module may be configured toavoid dropping frame from the video stream in the data transmission.

In the module, the adjustment module may use data relating to resolutionand colour depth capabilities of the display to adjust thecharacteristics of the data transmission.

In other aspects, various combinations of sets and subsets of the aboveaspects are provided.

Generally, an embodiment provides a system and method for providing andadjusting data transmissions to a device in a communication network. Inone embodiment the data transmission relates to a video feed and thedevice is a wireless device receiving the feed.

Exemplary details of embodiments are provided herein. First, adescription is provided on general concepts and features of anembodiment and its related transmission adjustment mechanisms. Then,further detail is provided on an exemplary transcoder related to anembodiment.

First, details on an exemplary network for an embodiment are provided.FIG. 1 shows communication system 100 where network 102 provides a suiteof applications, services and data to its connected devices 104 throughits associated servers. Devices 104 connect to network 102 through wiredconnections or through an external connection through Internet 106.Network 102 can be implemented in any known architecture, providingwired or wireless connections to its elements. Security systems withinnetwork 104 can be provided by known techniques and systems. Gateway 116provides and monitors selected communications between elements innetwork 102 and external devices connected through Internet 106.

Wireless devices 108 communicate with each other through wirelessnetwork 110. Network 110 includes an antenna, a base station andsupporting radio transmission equipment known to those skilled in theart. In one embodiment, the equipment and supporting servers for network110 deploy an Universal Mobile Telecommunications System (UMTS) network.UMTS is a third-generation (3G) mobile phone technology using W-CDMA asthe underlying transmission standard. UMTS systems are deployed inEurope as a system that adheres to the ITU IMT-2000 requirements forEuropean 3G cellular radio systems.

Interface server 112 in network 102 provides hardware and softwaresystems to allow devices 104 in network 102 to communicate with devices108 in wireless network 110. For communications directed to wirelessdevices 108, wireless services enterprise server 120 provides aninterface with video server 114 for transmissions destined to devices108. Transcoder 122 provides a collection and processing point for thevideo streams and other data transmission destined for devices 108through network 110.

In network 102, video server 114 is a repository for video files.Database 118 provides a data storage system for one or more elements innetwork 102, including video server 114. Video server 114 is shown aspassing its external (non-wired) emails through gateway 116. In othernetwork configurations, video server 114 may bypass gateway 116 for itsexternal connections to Internet 106.

For server 114, a video file may be stored as a series of digitalizedframes, where each frame captures an instantaneous still-image of thevideo. To produce a video image, the series of frames are sequentiallyshown on a display. The visual quality of the image is governed by atleast three factors:

-   -   1. the frame rate, which represents how frequently the video        image is updated with the next frame in the sequence;    -   2. the resolution of the frame, which is normally expressed in        pixels; and    -   3. the colour (or grey scale) depth of each frame.

In order to provide efficient downstream transmissions of the frames ina video signal from server 114, each frame is typically compressedbefore it is transmitted from server 114 to its destination. As such, acompressed frame is smaller in size than the original frame, making thecompressed frame easier to transmit. When the destination receives eachframe, each frame is decompressed and then generated on the display atthe destination. Compression takes advantage of spatial and temporalredundancy of data between frames. Compression algorithms are eitherlossy or lossless. For lossless compressions, when the transmitted frameis decompressed, the result is identical to the original frame. Losslesscompression for a video signal is not generally used as it would requireextensive hardware at the destination to process an uncompressed videosignal. Lossy video compression techniques have been developed byseveral industry standard bodies. Such compression standards includeJPEG and MPEG (Moving Picture Experts Group) standards. Each compressionstandard was designed to apply to a specific application and bit-rate.The MPEG standards include:

-   -   MPEG-1 which supports transmission rate of up to 1.5 Mbit/sec.        This compression is frequently used for moving pictures and        audio. MPEG-1 is a popular standard for video files sent through        the Internet, transmitted as mpg files.    -   MPEG-2 which supports transmission rates of between 1.5 and 15        Mbit/s. This compression is frequently used for digital        television set top boxes and DVD formats.    -   MPEG-4 which is commonly used for multimedia and Internet        web-page compression.

The video server 114 would typically store its videos already incompressed format; as raw videos may be either too large to be eitherstored or sent over most networks. In most installations, sever 114consists of a store (possibly a database) of videos, and a mechanism tostream them out over the network. The format used for compression ofvideos on the Internet would typically be Windows Media Video (WMV),Real Video, or MPEG-4 or any variants thereon.

When a video stream is provided over wireless network 110, twobandwidth— related issues in transmitting the video stream to thewireless devices arise:

-   -   1) Algorithms for controlling data transmission rates in UMTS        and other networks are not necessarily tuned to transmitting        video streams. Typically, these networks start a downlink        transmission at a very low rate, then gradually increase the        transmission rates up to a maximum speed. For example, for the        first minute of a video transmission, device 108 may be        receiving video frames at a very slow downlink rate, which would        not provide a smooth video image.    -   2) Downstream transmission rates also vary on the quality of the        connection between the device 108 and the transmission tower for        a particular cell in network 104. As device 108 moves further        away from the tower, its downlink rate drops. If this is the        result of multipath or other fading, the poor coverage will be        transient, so the throughput will rise back up in a short time.

Both of the two issues noted above can result in dropping individualframes in the video stream as it is being transmitted. This strategypreserves the image quality of individual frames, but degrades the framerate. The video output, however, is not as realistic as there are largertime gaps between successive frames, causing larger changes in motionbeing presented between successive frames.

The embodiment provides a system and method that transmits a videostream to wireless devices and adjusts the transmissions by adjustingtransmission rates and compression characteristics for the stream, andattempts to avoid dropping frames. It will be appreciated that otherembodiments can be provided for other types of data transmission toother types of devices in other types of communication networks. Furtherdetail is now provided on elements, systems and algorithms relating toan embodiment.

For an embodiment, as downstream transmission rates and compressionlevels is being controlled as a video stream is being sent from server114 to device 108, transcoder 122 may be used to implement some or allof the adjustments to the video stream. Transcoder 122 is a transferagent that routes video signals from one or more source (e.g. videoserver 114 or other devices in network 100) to one or more devices innetwork 110, thereby allowing a singly-sourced video stream to bedistributed to a wide set of heterogeneous mobile devices. Transcoder122 provides an intermediary transition point for a video streamallowing it to be tailored to individual devices 108.

In short, transcoder 122 is a data conversion point that providesdigital-to-digital conversion from one coder/decoder (codec) format toanother. The originating format may or may not be lossy. Transcoder 122may decompress the received video stream into an intermediate, rawformat, such as PCM or YUV. From the intermediate format, the videostream may then be subsequently encoded into a different format to anoutput video stream that is directed to a wireless device 108. Theoutput video stream may use a lower bitrate format for the image and/ormay change other compression characteristics of the image. Such changesmay be made without deviating from the format of the original videostream. Exemplary transmission rates used by a codec may follow ITU-Tstandards such as H.261 and H.263.

FIG. 2 shows an exemplary process 200 of transmission of a video streamfrom video server 114 through transcoder 122 in enterprise server 120 todevices 108. Video server 114 comprises video sources 202, video encoder204 and video encoder buffer 206. Video sources 202 may be live videosources, television clips, animation segments, movie clips etc. Sources202 are stored in a storage location accessible by server 114, such asdatabase 116. Each video source may be encoded in one or more videoformats.

When a request for a video stream is completed between wireless device108 and server 114, the following processes are executed. First, theidentified video stream is identified and is retrieved from sources 202.The raw video stream is provided to encoder 204, which then takes thestream on a frame-by-frame basis and encodes the stream, again on aframe-by-frame basis, into an appropriate format suitable fortransmission in network 104. After each frame is encoded, it is providedto encoder buffer 206, which buffers each frame in a queue, such as aFIFO queue. Scheduler 208 controls the release of each frame to network104 according to a scheduling scheme. Scheduler 208 may release one ormore frames at different rates, depending upon input parameters relatingto the topologies of network 104, video server 114 and any additionalrelevant transmission gateway.

Each released frame is encoded into one or more data packets suitablefor transmission through network 104. Each packet can be tracked as ittraverses through network 104. Each released frame is routed throughnetwork 104 to transcoder 122 over a high-bandwidth link.

As noted earlier, transcoder 122 is used to identify an appropriateframe compression (if any) that can be provided to the video stream, ona frame-by-frame basis, for the target device 108. The released frame isreceived at encoder 208 and is further compressed by an algorithm thatprovides a compression or bitrate conversion based on an analysis of thetransmission characteristics of the video image, transmissioncharacteristics of network 110 and video processing and displaycharacteristics of target device 108. Once encoded for transmission tonetwork 110, the compressed frame is provided to buffer 210, whichplaces it into a queue, such as a FIFO queue. Each compressed frame isreleased from buffer 210 according to scheduler 212.

Before or after each compressed frame is released from buffer 210, eachcompressed frame is converted into one or more wireless data packets andthe compressed frame is transmitted over wireless network 110 followingits transmission protocols.

Eventually, as each packet of a compressed frame is received by device108, the collection of packets are used to reassemble the compressedframe, which is then provided to decoder buffer 214, which buffers eachframe in a queue, such as a FIFO queue. The compressed frames areextracted from buffer 214 according to an extraction algorithm 216 andare provided to decoder 218. Decoder then analyzes the compressed framegenerates an image relating to it on the display of device 108.Meanwhile, the next compressed frame in the video stream is beingextracted from buffer 214 and is then decoded by decoder 218 and isfinally generated on the display of device 108. That next frame isdisplayed on the device at a frame rate suitable for the processing anddisplay capabilities of device 108.

Consider the following components in process 200, where device 108A innetwork 110 is a camera phone and has captured a digital video. Thedigital video file would be represented by a series of high-resolutionJPEG images, usually at least a resolution of 640×480 pixels with acolour depth of 24 bits. Camera phone 108A is sending the video file tocamera phone 108B. For the sake of this example, the video file would besent from phone 108A through network 110 to transcoder 122, then backthrough network 110 to phone 110B. During the processing andtransmission of the video file, it may be transcoded to a lowerresolution image with less amount of color, having a level of detailthat is more suited to the screen size and color limitation of phone108B. For example, if phone 108B has a screen size of 120×160 pixels andcan process a maximum colour depth of 16 bits, then at some point duringthe transmission of the video file, the individual images in the filemay be encoded to contain the level of detail and depth of colour thatis associated with the display of phone 108B. It will be appreciatedthat this image size and color depth reduction may assist in improvingthe user experience on phone 108B because the video information isprovided faster. Further, for some devices, having the reduced imagesmay be the only way for content to be sent between phones 108A and 108B.

In one embodiment, for network 110, devices 108 are registered withserver 104. Through an initial registration scheme or a configurationmessage sent from the device to network 110, the following informationabout a particular device 108 is provided: central processing unit(CPU)/microprocessor type, screen type, versions of applications,operating system version, and other information. This data may be storedin a database associated with the interface server. A subset of theinformation is also provided to transcoder 122. Table A1 provides anexemplary data set of devices 108 tracked by transcoder 122, whether byitself or through one or more of interface server 112, enterprise server120, video server 114 and itself.

TABLE A1 Device ID number Device Type Display Type ProcessorApplications 1 Manufacturer 2 inch Proc. Mfg Video (Mfg) #1, Model 120 ×160 pixels #1, processing A, Version 1 4:3 aspect ratio Model A,software, 4 bit colour Version 1 Version 1 2 Mfg #1, Model 2.5 inchProcessor Video A, Version 2 160 × 200 pixels Mfg #1, processing 16:9aspect ratio Model B, software, 8 bit colour Version 1 Version 2 . . . .. . n Mfg #y, Model 2.5 inch Processor Video 14, Version 2 200 × 240pixels Mfg #z, processing 16:9 aspect ratio Model B, software, 24 bitcolour Version 4 Version 2.5

For each display and application, Tables A2 and A3 provide a list ofexemplary options of acceptable resolutions and colour depths, for aparticular version of the display and video display software.

TABLE A2 Ranking of Ranking of Device acceptable acceptableIdentification Device Type/ Display Colour number Display ResolutionsDepths 1 Mfg #1, Model A, 120 × 160 4 Version 1 100 × 140 2 2 inch  80 ×120 120 × 160 pixels 4:3 aspect ratio 4 bit colour 2 Mfg #1, Model A,120 × 160 8 Version 2 100 × 140 4  80 × 120 2 . . . . . . n Mfg #y,Model 14, 200 × 240 24 Version 2 120 × 160 16 100 × 140 8  80 × 120

TABLE A3 Ranking Ranking of of Device acceptable acceptableIdentification Application Display Colour number Software ResolutionsDepths 1 Video 120 × 160 4 processing 100 × 140 2 software,  80 × 120Version 1 2 Video 120 × 160 8 processing 100 × 140 4 software,  80 × 1202 Version 1 . . . . . . n Video 200 × 240 24 processing 120 × 160 16software, 100 × 140 8 Version 2.5  80 × 120 4 40 × 60

It is noted that values of Tables A2 and A3 may or may not have similarvalues for the degradation levels associated with the versions of thedisplays and the software.

Table B provides an exemplary transmission rate of frames for a networkfor video transmissions to device 108.

TABLE B Time Throughput rate Start  3 kbit/s 10  5 kbit/s seconds 20 30kbit/s seconds 30 60 kbit/s secondsIt will be appreciated that any type of transmission rate curve may bestored by an embodiment, whether in a table form, a formula or setvariables. Any particular curve may be generally increasing, monotonic,exponential, step-wise or other functions, including combinations of anycurves for different transmission periods.

For a device 108 receiving a video stream from transcoder 122,transcoder 122 can adjust the video stream to the device as follows.First, transcoder 122 can begin tracking a video stream for device 108when it is first received at transcoder 122 from server 114. An initialadministrative message associated with the stream provided by server 114can be sent that indicates the start time of the video transmission, theduration, and the target device 108. Transcoder 122 can then define abandwidth for the stream according to Table B. Specific resolution andcolour depth values for particular frames at particular instances intime during the transmission can be made by correlating the throughputrate at a given time in the transmission with an adjustment made to theThrough an analysis of the throughput rates in Table B provides anexemplary data set of devices 108 tracked by transcoder 122, whether byitself or through one or more of interface server 112, enterprise server120, video server 114 and itself.

By lowering the output resolution of the image and having device 108scale up the lower-resolution image, more bits can be allocated toencoding each frame; this results in better image quality than if theresolution were held fixed. Transcoder 122 may use a streaming formatthat is known in the art that allows for varying resolutionsColour-depth is another variable that can be degraded when thethroughput is low.

By knowing the capabilities of device 108, transcoder 122 may furtheroptimize the transmission stream. The type of CPU on device 108, thetype of display, the version of the operating system or the videoprocessing software, etc., may individually or collectively be assessedin determining a throughput rate and a display characteristics for thevideo stream, thereby improving image quality and preferably maintainingthe frame rate for the stream. For example, referring to Tables A1-A3and B, for Device ID #2, Table C shows exemplary resolution and colourdepth values may be used during the noted transmission times:

TABLE C Video frame values for a transmission to Device #1 Display TimeThroughput rate Resolution Colour Depth Start 1 Mbps  80 × 120 2 100 ×140 4 10 3 Mbps  80 × 120 2 seconds 100 × 140 20 5 Mbps 100 × 140 2seconds 120 × 160 4 30 20 Mbps  120 × 160 4 seconds

It is noted that the Display Resolution and Colour Depth fields can eachprovide a set of values that can be selected for the current display.The options, in this embodiment, are shown in order of least bandwidthintensive from top to bottom.

It will be appreciated that for some embodiments, once Table B isanalysed, the selected resolution and colour depth can be identified bya multitude of variations among the available parameters for bothvariables. For example, for a given transmission time, an emphasis canbe placed on reducing the colour depth before reducing the resolution(or vice versa) or a choice can be made to reduce each by one or morelevels.

Each device 108 can provide more or less information to server 104. Suchinformation may be provided through typical “heartbeat” messages thatare sent on a periodic basis from devices 108 to server 104. At certaininstances or intervals, device 108 may send a message to transcoder 122providing details on its video processing capabilities. Such message mayinclude characteristics of its display (including its resolution andcolour depth) and the current software applications and their versionsinstalled on device 108.

The embodiment allows for adjustment of the display parameter and thetransmission rates for device 108 without expecting or waiting for anacknowledgement (ACK) or NACK to be received by transcoder 122 fromdevice 108. This reduces the amount of uplink data sent by device 108 totranscoder 122. Nevertheless, in other embodiment, receipt of aheartbeat or ACK/NACK message(s) from device 108 can be used as a factorto determine whether or if the transmission rate is increased or ifresolution or colour depth characteristics of a frame are changed. Forexample, the parameters can be changed on a basis as provided per anassumed normal transmission mode, such as shown in Table C, unless twoheartbeat consecutive expected signals are not received from device 108.In such a case, the transmission rate or the frame characteristics mayremain the same. A receipt history of such messages may be kept toassist in making this determination. The transmission rate may beincreased depending on an analysis of the history. For example, thetransmission rate may be increased only if the transcoder determinesfrom the history that there is some (recent) acknowledgement messagingactivity received from the device.

Referring to FIGS. 3 and 4, further detail is provided on transcoder122.

Referring to FIG. 3, further detail is shown generally at 300 fortranscoder 122. In addition to encoder 210, buffer 212 and transcoderscheduler 214 described earlier, database 302 is provided to store andupdate data relating to transmission parameters for video streams, suchas data relating to Tables A1-A3, B and C. Transmission rate monitor 304provides a process that monitors the current status of a videotransmission, including the current elapsed time of the transmission andany feedback signals and messages provided from video server 114.Heartbeat monitor 306 is provided to monitor for any ACK/NACK or othersignals provided from device 108 and to determine how and when to adjustthe transmission parameters in accordance with such signals. It will beappreciated that the transmission parameters of the video stream areautomatically adjusted according to parameters defined in Tables A1-A3,B and C. Adjustments made due to signals from heartbeat monitor 306 mayor may not be used to adjust parameters of the video stream. Additionalelements for transcoder 122 are not shown in FIG. 3, but are understoodby those skilled in the art as being part of transcoder 122, including amicroprocessor, volatile and non-volatile memory, input and output portsand firmware and software operating thereon to provide the queues,schedulers, encoders and other aspects of transcoder 122.

Referring to FIG. 4, flow chart 400 shows a process operating ontranscoder 122 used to identify when a video stream is received fromserver 114 for transmission to device 108 and when and how to set andadjust transmission parameters for the stream to device 108.

In operation, transmission rate monitor 304 (FIG. 3) can be used toprovide monitoring functions. Encoder 210 and scheduler 214 can be usedto control and generate outputs from process 300.

Process 400 begins at start 402, which simply identifies the startingpoint for the process. From start 402, process 400 immediately proceedsto step 404, where it waits for an initiation of a new video stream.Other similar processes 400 may be operating at the same time intranscoder 122.

At step 406, a test loop is provided to determine if a video stream hasbeen initiated. If no stream is detected, then the loop flows back tostep 404. If a new video stream has been detected (e.g., from thereceipt of a new message from server 114), then process 400 proceeds tosteps 408, 410 and 412, where parameters relating to the stream areidentified, including the destination device 108, the initialtransmission rate and the initial transmission quality parameters. Thesevalues can be extracted or developed after analyzing Tables A1-A3 and Bto generate parameters found in Table C. The transmission quality valuesare provided to encoder 210 and the transmission rate parameters areprovided to scheduler 214.

Next, at test 414, a check is made to determine if the stream hasfinished its transmission. If it has, then the process ends at step 416and returns to start step 410. If the transmission has not completedthen a test is made at test 418 to determine if it is time to changetransmission parameters for the stream. This can be due to passage ofthe next time for which the transmission rate is increased, per Table B.If there is a change, then process 400 returns to step 408 to determinethe new operating and transmission parameters per the current time stageof the transmission. If there is no change (for example, because thenext time for a transmission change has not yet elapsed), then process400 moves to step 420, where it waits for a change. During this stage,the heartbeat signal from device 108 may be monitored. Other streams mayalso be reviewed. Other administrative functions for process 400 may beexecuted here. Once these functions are complete, process 400 returns tostep 418 to monitor again for a next transmission increase.

It will be appreciated that other embodiments may have the elements ofprocess 200 in different orders or may have more or less steps and teststherein. Process 200 may be atomized and may be executed by one or moreprocesses operating on transcoder 122.

It will further be appreciated that other embodiments may implementaspects in different configurations and arrangements than thosedescribed to this point. For example, another video server for anembodiment may have a database of video clips bundled in with it.Further, this video server may be located anywhere in connection to anetwork from where interface server 112 is located. It will beappreciated that use of interface server 112 and transcoder 122 allows avideo file to be located almost anywhere on a network, from where thevideo can be streamed to a desktop PC and may be transcoded and streamedto a handheld device.

Further detail is now provided on device 108 (FIG. 1), which receivesthe video stream from transcoder 122.

FIG. 5 provides general features of an electronic device for receivingelectronic communications in accordance with an embodiment of theinvention, which is indicated generally at 108. In the presentembodiment, electronic device 108 is based on a computing platformhaving functionality of an enhanced personal digital assistant withcellphone and e-mail features. It is, however, to be understood thatelectronic device 108 can be based on construction design andfunctionality of other electronic devices, such as smart telephones,desktop computers, pagers or laptops having telephony equipment. In apresent embodiment, electronic device 108 includes a housing 502, an LCD504, speaker 506, an LED indicator 508, a trackball 510, an ESC(“escape”) key 512, keypad 514, a telephone headset comprised of an earbud 516 and a microphone 518. Trackball 510 and ESC key 512 can beinwardly depressed along the path of arrow “A” as a means to provideadditional input to device 108.

It will be understood that housing 502 can be made from any suitablematerial as will occur to those of skill in the art and may be suitablyformed to house and hold all components of device 108.

Device 108 is operable to conduct wireless telephone calls, using anyknown wireless phone system such as a Global System for MobileCommunications (GSM) system, Code Division Multiple Access (CDMA)system, CDMA 2000 system, Cellular Digital Packet Data (CDPD) system andTime Division Multiple Access (TDMA) system. Other wireless phonesystems can include Bluetooth and the many forms of 802.11 wirelessbroadband, like 802.11a, 802.11b, 802.11 g, etc. that support voice.Other embodiments include Voice over IP (VoIP) type streaming datacommunications that can simulate circuit-switched phone calls. Ear bud516 can be used to listen to phone calls and other sound messages andmicrophone 518 can be used to speak into and input sound messages todevice 108.

Referring to FIG. 6, functional components of device 108 are provided inschematic 600. The functional components are generally electronic,structural or electro-mechanical devices. In particular, microprocessor602 is provided to control and receive almost all data, transmissions,inputs and outputs related to device 108. Microprocessor 602 is shownschematically as coupled to keypad 514 and other internal devices.Microprocessor 602 preferably controls the overall operation of thedevice 108 and its components. Exemplary microprocessors formicroprocessor 602 include Data 950 (trade-mark) series microprocessorsand the 6200 series microprocessors, all available from IntelCorporation. Microprocessor 602 is connected to other elements in device108 through a series of electrical connections to its various input andoutput pins. Microprocessor 602 has an IRQ input line which allows it toreceive signals from various devices. Appropriate interrupt firmware isprovided which receives and reacts to the signals detected on the IRQline.

In addition to the microprocessor 602, other internal devices of thedevice 108 are shown schematically in FIG. 6. These include: display504; speaker 506; keypad 514; communication sub-system 604; short-rangecommunication sub-system 606; auxiliary I/O devices 608; serial port610; microphone port 612 for microphone 518; flash memory 614 (whichprovides persistent storage of data); random access memory (RAM) 616;clock 618 and other device sub-systems (not shown). Device 108 ispreferably a two-way radio frequency (RF) communication device havingvoice and data communication capabilities. In addition, device 108preferably has the capability to communicate with other computer systemsvia the Internet.

Operating system software executed by the microprocessor 602 ispreferably stored in a computer-readable medium, such as flash memory614, but may be stored in other types of memory devices, such asread-only memory (ROM) or similar storage element. In addition, systemsoftware, specific device applications, or parts thereof, may betemporarily loaded into a volatile store, such as RAM 616. Communicationsignals received by the mobile device may also be stored to RAM 616.

In addition to an operating system operating on device 108, additionalsoftware modules 620 enable execution of software applications on device108. A set of software (or firmware) applications, generally identifiedas applications 620, that control basic device operations, such as voicecommunication module 620 and data communication module 620B, may beinstalled on the device 108 during manufacture or downloaded thereafter.As well, software modules, such as calendar module 620C, address book620D and location module 620E. Video processing module 620N is softwareor firmware that provides processes to receive individual packets for avideo frame, collect the packets to recreate the frame and generate themon display 504. The packets can be received from outside sources(including from transmissions received from subsystem 604). As such,video processing module provides the functionality of buffer andalgorithm 216 and decoder 218 shown in FIG. 2. Different versions of thesoftware for video processing module 620N may be tracked by anembodiment, as shown in Table A. Different versions may be able to moreefficiently handle video images, thereby allowing higher resolutions andcolour depths to be used for a given transmission rate. Additionalmodules such as personal information manager (PIM) application may beprovided. Any module may be installed during manufacture or downloadedthereafter into device 108. Data associated with each application can bestored in flash memory 614.

Communication functions, including data and voice communications, areperformed through the communication sub-system 604 and the short-rangecommunication sub-system 606. Collectively, sub-systems 604 and 606provide the signal-level interface for all communication technologiesprocessed by device 108. Various applications 620 provide theoperational controls to further process and log the communications.Communication sub-system 604 includes receiver 622, transmitter 624 andone or more antennas, illustrated as receive antenna 626 and transmitantenna 628. In addition, communication sub-system 604 also includesprocessing modules, such as digital signal processor (DSP) 630 and localoscillators (LOs) 632. The specific design and implementation ofcommunication sub-system 604 is dependent upon the communication networkin which device 108 is intended to operate. For example, communicationsub-system 604 of device 108 may operate with the Mobitex®, DataTAC® orGeneral Packet Radio Service (GPRS) mobile data communication networksand also operate with any of a variety of voice communication networks,such as Advanced Mobile Phone Service (AMPS), Time Division MultipleAccess (TDMA), Code Division Multiple Access (CDMA), CDMA 2000, PersonalCommunication Service (PCS), Global System for Mobile Communication(GSM), etc. Other types of data and voice (telephonic) networks, bothseparate and integrated, may also be utilized with device 108. In anyevent, communication sub-system 604 provides device 108 with thecapability of communicating with other devices using variouscommunication technologies, including instant messaging (IM) systems,text messaging (TM) systems and short message service (SMS) systems.

Short-range communication sub-system 606 enables communication betweendevice 108 and other proximate systems or devices, which need notnecessarily be similar devices. For example, the short-rangecommunication sub-system may include an infrared device and associatedcircuits and components, or a Bluetooth (trade-mark) communicationmodule to provide for communication with similarly enabled systems anddevices.

In addition to processing communication signals, DSP 630 providescontrol of receiver 626 and transmitter 624. For example, gains appliedto communication signals in receiver 622 and transmitter 624 may beadaptively controlled through automatic gain-control algorithmsimplemented in DSP 630.

Powering the entire electronics of the mobile handheld communicationdevice is power source 634. In one embodiment, the power source 634includes one or more batteries. In another embodiment, the power source634 is a single battery pack, especially a rechargeable battery pack. Apower switch (not shown) provides an “on/off” switch for device 108. Apower source interface (not shown) may be provided in hardware,firmware, software or a combination of such elements to selectivelycontrol access of components in device 108 to power source 634. Uponactivation of the power switch an application 620 is initiated to turnon device 108. Upon deactivation of the power switch, an application 620is initiated to turn off device 108. Power to device 108 may also becontrolled by other devices and by software applications 620.

Device 108 may also have global positioning system 636 to assist inidentifying a present location of device 108 and may also have lightsensor 638 to provide data on the ambient light conditions for device108.

While an embodiment has been described as relating to control oftransmission rates of a video transmission to a wireless device, it willbe appreciated that other embodiments may be provided where transmissionrates of any data transmission is controlled for any device capable ofreceiving the data transmission.

The present invention is defined by the claims appended hereto, with theforegoing description being merely illustrative of embodiments of theinvention. Those of ordinary skill may envisage certain modifications tothe foregoing embodiments which, although not explicitly discussedherein, do not depart from the scope of the invention, as defined by theappended claims.

We claim:
 1. A method for adjusting a download transmission rate for adata transmission destined for a portable device through a communicationnetwork, comprising: monitoring for initiation of said data transmissionto said device; identifying characteristics of said device relating tosaid data transmission that affect the ability of said device to processsaid transmission; automatically adjusting said transmission rateaccording to a preset transmission rate progression established for saidcommunication network; and adjusting characteristics of said datatransmission to allow said characteristics of data transmission toconform to said characteristics of said device while maintaining saidtransmission rate for said device.
 2. The method for adjusting adownload transmission rate for a data transmission as claimed in claim1, wherein: said data transmission is a video stream; said device is awireless device; said characteristics of said data transmission relateto resolution and colour depth of frames of said video stream; saidcharacteristics of said device relate to at least characteristics of adisplay of said device; and said transmission rate is adjusted accordingto a UMTS protocol.
 3. The method for adjusting a download transmissionrate for a data transmission destined for a portable device as claimedin claim 2, wherein said method is executed at a transcoder providingsaid video stream to said wireless device.
 4. The method for adjusting adownload transmission rate for a data transmission as claimed in claim3, wherein said characteristics of said device further relate to videoprocessing software operating on said device.
 5. The method foradjusting a download transmission rate for a data transmission asclaimed in claim 4, wherein said transmission rate is further adjusteddepending on a receipt history of acknowledgement messages received bysaid transcoder from said device.
 6. The method for adjusting a downloadtransmission rate for a data transmission as claimed in claim 5, whereinsaid transmission rate is increased if said receipt history indicatesthat said acknowledgement messages are being received.
 7. The method foradjusting a download transmission rate for a data transmission asclaimed in claim 4, wherein: said adjusting characteristics of said datatransmission utilizes data relating to resolution and colour depthcapabilities of said display to adjust said characteristics of said datatransmission.
 8. The method for adjusting a download transmission ratefor a data transmission as claimed in claim 7, wherein: said datatransmission is configured to avoid dropping frame from said videostream.
 9. The method for adjusting a download transmission rate for adata transmission as claimed in claim 8, wherein: said device providesto said transcoder data relating to resolution and colour depthcapabilities of said display and data relating to said video processingsoftware.
 10. The method for adjusting a download transmission rate fora data transmission as claimed in claim 9, wherein said transmissionrate is a gradually increasing rate.
 11. A module for adjusting adownload transmission rate for a data transmission destined for aportable device through a communication network, comprising: amonitoring process to monitor for initiation of said data transmissionto said device; an analysis process to identify characteristics of saiddevice relating to said data transmission that affect the ability ofsaid device to process said transmission; and a transmission adjustmentprocess to automatically adjust said transmission rate according to apreset transmission rate progression established for said communicationnetwork and to allow said characteristics of data transmission toconform to said characteristics of said device while maintaining saidtransmission rate for said device.
 12. The module for adjusting adownload transmission rate for a data transmission destined for aportable device as claimed in claim 10, wherein: said data transmissionis a video stream; said device is a wireless device; saidcharacteristics of said data transmission relate to resolution andcolour depth of frames of said video stream; said characteristics ofsaid device relate to at least characteristics of a display of saiddevice; and said transmission rate is adjusted according to a UMTSprotocol.
 13. The module for adjusting a download transmission rate fora data transmission destined for a portable device as claimed in claim12, wherein said module is a transcoder providing said video stream tosaid wireless device.
 14. The module for adjusting a downloadtransmission rate for a data transmission destined for a portable deviceas claimed in claim 13, wherein said characteristics of said devicefurther relate to video processing software operating on said device.15. The module for adjusting a download transmission rate for a datatransmission destined for a portable device as claimed in claim 14,wherein said transmission rate is further adjusted depending on anyacknowledgement messages provided from said device to said transcoder.16. The module for adjusting a download transmission rate for a datatransmission destined for a portable device as claimed in claim 14,wherein said transmission adjustment module utilizes data relating toresolution and colour depth capabilities of said display to adjust saidcharacteristics of said data transmission.
 17. The module for adjustinga download transmission rate for a data transmission destined for aportable device as claimed in claim 16, transmission adjustment moduleis configured to avoid dropping frame from said video stream in saiddata transmission.
 18. The module for adjusting a download transmissionrate for a data transmission destined for a portable device as claimedin claim 17, wherein: said adjustment module utilizes data relating toresolution and colour depth capabilities of said display to adjust saidcharacteristics of said data transmission.